// 博文 C++输入文件流遇空白符结束
#include <iostream>
#include <fstream>
#include <string.h>
int main(void)
{
  std::fstream fs;
  fs.open("E:\\CodeField\\Code_Cpp\\C_Single\\csdn\\20211010\\src\\afile.dat", std::ios::trunc | std::ios::out);
  if (!fs)
  {
    std::cout << "open afile.dat err!" << std::endl;
    exit(-1);
  }
  char str[100];

  std::cout << "enter sentence 1 : ";
  std::cin >> str;
  fs << str;

  std::cout << "enter sentence 2 : ";
  std::cin >> str;
  
  // fs << str << std::endl; // =》 '\n' + end
  // fs << str << '\n';
  fs << str << '\t'; // !!!这边直接插空白符跟在 str（控制台输23）后面
  // fs << str << '\v';
  // fs << str << '\f';
  // fs << str << '\r';
  // fs << str << ' ';

  std::cout << "enter sentence 3 : ";
  std::cin >> str;
  fs << str;

  fs.close();

  // 读取文件a,并复制到b
  std::ifstream ifs;
  ifs.open("E:\\CodeField\\Code_Cpp\\C_Single\\csdn\\20211010\\src\\afile.dat");
  if (!ifs)
  {
    std::cout << "open afile.dat err!" << std::endl;
    exit(-1);
  }
  std::ofstream ofs;
  ofs.open("E:\\CodeField\\Code_Cpp\\C_Single\\csdn\\20211010\\src\\bfile.dat", std::ios::trunc);
  if (!ofs)
  {
    std::cout << "open bfile.dat err!" << std::endl;
    exit(-1);
  }
  int i = 0;
  while (ifs >> str)
  {
    std::cout << "chunk" << ++i << " : " << str << std::endl;
    ofs << str;
  }

  ifs.close();
  ofs.close();

  printf("--------------end--------------\n");
  return 0;
}
